import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../components/Login.vue'
import Home from '../components/Home.vue'
import Welcome from "../components/Welcome.vue";
import Users from "../components/user/Users.vue"
import Rights from "../components/power/Rights.vue"
import Roles from "../components/power/Roles.vue"
import Cate from "../components/goods/Cate.vue"
import Params from "../components/goods/Params.vue"
import GoodsList from "../components/goods/List.vue"
import Add from "../components/goods/Add.vue"
import Order from "../components/order/Order.vue"
import Report from "../components/report/Report.vue"
Vue.use(VueRouter)

// export default new VueRouter({
//   routes:[
//     {
//       path:'/',
//       name:'index',
//       redirect:'/login', //重定向
//     },
//     {
//       path:'/login',
//       name:'login',
//       component:Login,
//     },
//     {
//       path:'/home',
//       name:'home',
//       component:Home,
//     },
//   ]
// })


const routes = [
    {
    path:'/',
    name:'index',
    redirect:'/login', //重定向
  },
  {
    path:'/login',
    name:'login',
    component:Login,
  },
  {
    path:'/home',
    name:'home',
    component:Home,
    redirect:'/welcome',
    // 子组件
    children:[
      {
        path:'/welcome',
        name:'welcome',
        component:Welcome,
      },
      {
        path:'/users',
        name:'users',
        component:Users
      },
      {
        path:'/rights',
        name:'rights',
        component:Rights
      },
      {
        path:'/roles',
        name:'roles',
        component:Roles
      },
      {
        path:'/categories',
        name:'cate',
        component:Cate
      },
      {
        path:'/params',
        name:'params',
        component:Params
      },
      {
        path:'/goods',
        name:'list',
        component:GoodsList
      },
      {
        path:'/goods/add',
        name:'add',
        component:Add
      },
      {
        path:'/orders',
        name:'order',
        component:Order
      },
      {
        path:'/reports',
        name:'report',
        component:Report
      },
    ]
  },
]
const router = new VueRouter({
  routes
})

// 挂载路由导航守卫
router.beforeEach((to,from,next)=>{
  // to 将要访问的路径
  // from 代表从哪个路径跳转而来
  //  next 是一个函数 表示放行 
  // next有两种方式： 1. next（）表示放行  2.next（'/login'） 表示强制跳转到对应路径
  // 获取token
  if(to.path === '/login') return next();
  const strToken = window.sessionStorage.getItem('token');
  if (!strToken) return next('/login')
  next();
  
})

export default router